# 继承：子类继承父类拥有父类的所有属性和方法(私有属性方法)
# 单继承：一个子类只有一个父类  子类名(父类名)
# 多继承：一个子类有多个父类  子类名(父类名1,父类名2...)

class Master():  # 师父类
    def __init__(self):
        self.kongfu = "古法煎饼果子技术"

    def cook(self):
        print(f"利用{self.kongfu}来制作煎饼果子")

class School():  # 学校类
    def __init__(self):
        self.kongfu = "六星教育煎饼果子技术"

    def cook(self):
        print(f"利用{self.kongfu}来制作煎饼果子")

class Prentice(School,Master):    # 徒弟类
    def __init__(self):
        self.kongfu = "独创煎饼果子技术"

    def cook(self):
        print(f"利用{self.kongfu}来制作煎饼果子")

    # 调用执行父类的方法：扩展 super(子类,self)
    def cook_master(self):
        super(School,self).__init__()
        super(School,self).cook()

    def cook_school(self):
        super().__init__()
        super().cook()

xiaoming = Prentice()
# xiaoming.cook()  # 六星教育？古法？==> 从左到右去执行
# xiaoming.cook_master()
xiaoming.cook_school()

"""
多继承的特点：就近
1.如果子类有和父类相同的属性和方法名会执行自己
2.如果子类没有和父类相同的属性和方法名会按照从左到右的顺序去查找(就近)
"""
